package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * PAAS数据初始化
 * 创建时间： 2018/9/27 14:38
 * 修改时间： 2018/9/27 14:38 梁鲁江
 *
 * @author 梁鲁江
 */
@Getter
@Setter
@ToString
public class PaasFormDataEsInitDTO extends BaseDTO{
    private static final long serialVersionUID = -7312910393019435718L;
    /**
     * 验证码
     */
    @NotEmpty(message = "{dto.msg.paasFormDataEsInit.xbbCode.NotEmpty}")
    private String xbbCode;
    /**
     * 每页查询长度
     */
    private Integer pageSize;
    /**
     * paas和saas的区分标记
     *  @see  com.xbongbong.pro.enums.SaasMarkEnum
     */
    @NotNull(message="{dto.msg.paasFormDataEsInit.saasMark.NotNull}")
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer saasMark;
    /**
     * saas业务类型,当saasMark为saas的时候不为空
     * @see  com.xbongbong.saas.enums.XbbRefTypeEnum
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer businessType;

    private List<Integer> businessTypeList;

    /**
     * 是否按公司处理  0 全部   ，null或1 按公司,
     */
    private Integer byCorpid;

    /**
     * 当改值为空，则同步所有数据，该值不为空，则同步更新时间大于该值的数据
     */
    private Long updateTimeGte;
    /**
     * 通用时间大于
     */
    private Long updateTimeStart;
    /**
     * 通用时间大于
     */
    private Long updateTimeEnd;

    /**
     * 索引版本号，如果新建索引需要用到别名，则传入该值，如v1、v2。否则该值一定要传空或不传
     */
    private String indexVersion;
    /**
     * idIn
     */
    private List<Long> idIn;

    /**
     * 是否是同步数据，非bi，当前仅产品业务同步有区别
     * 1 同步入口 null或0其他入口
     */
    private Integer fromInit;
    /**
     * 是否包含子表单
     */
    private boolean include;
    /**
     * 是否异步插入  当为true的时候开启异步插入
     */
    private boolean async;
    /**
     * 设置id大于多少
     */
    private Integer idGte;

    private Integer special;

    /**
     * 表单id
     */
    private Long formId;

    /**
     * 应用id
     */
    private Long appId;

    /**
     * 睡眠时间
     */
    private int sleepTime;
}
